package com.ayz.gateway.common.type;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
import java.util.HashSet;

/**
 * @ClassName SimpleTypeRegistry
 * @Description TODO: 基础数据类型的注册器
 * @Author 快乐的星球
 * @Date 2023/5/10 14:05
 * @Version 1.0
 **/
public class SimpleTypeRegistry {
    /**
     * 基础数据类型的集合
     */
    private static final HashSet<String> SIMPLE_TYPE_SET=new HashSet<>();

    static {
        SIMPLE_TYPE_SET.add(String.class.getName());
        SIMPLE_TYPE_SET.add(Byte.class.getName());
        SIMPLE_TYPE_SET.add(Short.class.getName());
        SIMPLE_TYPE_SET.add(Character.class.getName());
        SIMPLE_TYPE_SET.add(Integer.class.getName());
        SIMPLE_TYPE_SET.add(Long.class.getName());
        SIMPLE_TYPE_SET.add(Float.class.getName());
        SIMPLE_TYPE_SET.add(Double.class.getName());
        SIMPLE_TYPE_SET.add(Boolean.class.getName());
        SIMPLE_TYPE_SET.add(Date.class.getName());
        SIMPLE_TYPE_SET.add(Class.class.getName());
        SIMPLE_TYPE_SET.add(BigInteger.class.getName());
        SIMPLE_TYPE_SET.add(BigDecimal.class.getName());
    }

    /**
     * 用于判断指定类是不是基础数据类型
     * 使用全类路径名来判断
     * @param clazz
     * @return
     */
    public static boolean isSimpleType(String clazz){
        return SIMPLE_TYPE_SET.contains(clazz);
    }
}
